Wireless telecommunications devices such as smartphones, mobile phones, and the like have become ubiquitous. Such devices are no longer only or primarily used for voice communications (e.g., voice telephone calls), instead they are essentially portable computer devices and are used for all sorts of data communication including web browsing, and the like.
The rise in the use of wireless telecommunications devices, along with the nature of their use has caused an exponential increase in the demand for mobile data and services. However, the corresponding required infrastructure has not kept up with this demand. Wireless telecommunications devices connect to data sources primarily through cellular networks, and the cellular carriers (i.e., the operators of the cellular networks) have not been able to support the demand for mobile data and services through the cellular network alone.
Users of wireless telecommunications devices, such as smartphones, often run into problems when too many users are attempting to use too few network resources. For example, Internet traffic can become slow and congested if there are too many users requesting channels from a cellular base station. In order to avoid the limitations and costs associated with cellular telephony, many wireless telecommunications device users switch to WiFi or other non-cellular connection protocols when possible. This type of switching is typically done by a user having to take active steps in order to use non-cellular connection protocols (e.g., choosing a WiFi network by name). Although WiFi service is presently cheaper than cellular service, in any particular location a WiFi network may itself become overwhelmed by user demand. WiFi access is typically not free, and the costs associated with such access may make the use of a WiFi network may be sub-optimal, both with respect to speed and cost. It should be appreciated that as used herein the term “cost” may refer to any cost and may or may not include a financial cost.
One solution to the congestion problem is the use of a mesh network in which users' devices communicate directly with one another instead of via a cellular network. In such a system traffic can be passed from one user device to another until the data are eventually transmitted to a fast, available connection to the Internet, and vice versa (from gateways to requesting devices).
Mesh networks suffer from severe problems, one of the biggest being that user devices have trouble determining a route they should use in the mesh. A mesh network approach essentially requires devices to flood the network with requests to build routes or forces each device to update the entire networks' connections. Both of these solutions cause enormous inefficiency, both in terms of transmission performance (unstable or low throughput connections) and quickly draining the battery of network devices.
There is a need to overcome the problems caused by multiple wireless telecommunications devices trying to use limited network resources. There is also a need to overcome these problems in an automatic and transparent manner, making good use of resources available. There is also a need to serve the entire network as optimally as possible given these constraints.